package com.csx.micrometer.sentinel.constant;

import lombok.Getter;

/**
 * @author cuisongxu
 * @date 2023/2/1 13:50
 */
@Getter
public enum SentinelDegradeStatus {

    /**
     * 熔断开启状态。拒绝所有请求
     */
    OPEN("degrade open status", 0),

    /**
     * 熔断半开状态。会放行下一个请求，如果请求顺利通过，则自动结束熔断，否则继续熔断。
     */
    HALF_OPEN("degrade half open status", 1),

    /**
     * 熔断关闭状态。请求能够顺利通过
     */
    CLOSED("degrade close status", 2);

    final String name;

    final Integer code;

    SentinelDegradeStatus(String name, Integer code) {
        this.name = name;
        this.code = code;
    }
}
